<?
class Tbp_xml
{
        var $id;        // уникальный идентификатор
	var $userid;    // кто создатель
        var $dt;        // дата и время создания        
	var $title;     // заголовок БП
	var $bodytxt;   // пояснение
	var $status;	// 0 - создано 1-стартовано 2-утверждено 3-отменено 4-отправлено на доработку
        var $node;      // текущин узел обработки в файле xml
        var $step;      // текущий шаг в данном БП
        var $xml;       // схема БП файл xml
        
function GetById($id){     // плучаем данные по идентификатору
		global $cfg;
  		$result = mysql_query("SELECT * FROM bp_xml WHERE id='$id'",$cfg->base_id);
  		if ($result!='')
  		{while ($myrow = mysql_fetch_array($result))
  		 {
  		 	 $this->id=$myrow[id];
  		 	 $this->userid=$myrow[userid];
                         $this->title=$myrow[title];
                         $this->bodytxt=$myrow[bodytxt];
                         $this->status=$myrow[status];
                         $this->dt=$myrow[dt];
                         $this->node=$myrow[node];
                         $this->xml=$myrow[xml];
                         $this->step=$myrow[step];
  		 };
  		 } else {die('Неверный запрос Tbp_xml.GetById: ' . mysql_error());}
	}
function GetLast(){     // плучаем последний созданный БП
		global $cfg;
  		$result = mysql_query("SELECT * FROM bp_xml ORDER BY id DESC LIMIT 1",$cfg->base_id);
  		if ($result!='')
  		{while ($myrow = mysql_fetch_array($result))
  		 {
  		 	 $this->id=$myrow[id];
  		 	 $this->userid=$myrow[userid];
                         $this->title=$myrow[title];
                         $this->bodytxt=$myrow[bodytxt];
                         $this->status=$myrow[status];
                         $this->dt=$myrow[dt];
                         $this->node=$myrow[node];
                         $this->xml=$myrow[xml];
                         $this->step=$myrow[step];
  		 };
  		 } else {die('Неверный запрос Tbp_xml.GetById: ' . mysql_error());}
	}
        
// записываем в базу параметры о текушем шаге        
function SetNodeToBase($node){
global $cfg;
$url=GetSiteUrl();
if (file_exists("../../bp/$this->xml")) {$xml = simplexml_load_file("../../bp/$this->xml");} else
    if (file_exists("bp/$this->xml")) {$xml = simplexml_load_file("bp/$this->xml");} else
         if (file_exists("../bp/$this->xml")) {$xml = simplexml_load_file("../bp/$this->xml");}
       //var_dump($xml);    
               foreach($xml->step as $step){                   
                   //echo "!$step->node!$node";  
                      if ($step->node==$node) {                        
                          //echo "!$step->node!$node";  
                          if ($step->thinking==""){$step->thinking=-2;};
                          if ($step->accept==""){$step->accept=-2;};
                          if ($step->cancel==""){$step->cancel=-2;};
                          if ($step->yes==""){$step->yes=-2;};
                          if ($step->no==""){$step->no=-2;};
                          if ($step->one==""){$step->one=-2;};
                          if ($step->two==""){$step->two=-2;};
                          if ($step->three==""){$step->three=-2;};
                          if ($step->four==""){$step->four=-2;};
                          
                          $st=$this->step+1;
                          foreach($step->user as $user){                   
                                $user=GetUserIdByPostId($user);                                
                                $sql="INSERT INTO bp_xml_userlist (id,bpid,dtstart,timer,userid,accept,cancel,thinking,yes,no,one,two,three,four,status,result,node,step) VALUES 
                                    (NULL,$this->id,NOW(),$step->timer,$user,'$step->accept','$step->cancel','$step->thinking','$step->yes','$step->no','$step->one','$step->two','$step->three','$step->four',0,0,'$node','$st')";                
                                $result = mysql_query($sql,$cfg->base_id);                
                                $zz=new Tusers;
                                $zz->GetById($user);
                                smtpmail($zz->email,"Новая задача!"," Вам необходимо зайти на портал и согласовать задачу <a href=$url>здесь</a>");
                                //echo "$sql";
                                };                                
                                $sql="UPDATE bp_xml SET node='$node',step=step+1 WHERE id='$this->id'";
                                $result = mysql_query($sql,$cfg->base_id);                                          
                        //echo $sql;
                      };
                    };               
    }       
function GetTitleNode($node){
global $cfg;
if (file_exists("../../bp/$this->xml")) {$xml = simplexml_load_file("../../bp/$this->xml");} else
    if (file_exists("bp/$this->xml")) {$xml = simplexml_load_file("bp/$this->xml");} else
       if (file_exists("../bp/$this->xml")) {$xml = simplexml_load_file("../bp/$this->xml");} ;
               foreach($xml->step as $step){                   
                      if ($step->node==$node) {                        
                          $title=$step->title;
                      };
                    };               
    return $title;                    
    }
function SetStatus($status){
global $cfg;
    if ($this->status!=$status){
    $url=GetSiteUrl();    
    $result = mysql_query("UPDATE bp_xml SET status='$status' WHERE id='$this->id'",$cfg->base_id);
    if ($result=='') {die('Неверный запрос Tbp_xml.SetStatus: ' . mysql_error());}  
    $zz=new Tusers;
    $zz->GetById($this->userid);
    smtpmail($zz->email,"Изменился статус БП!","Внимание! Зайдите на портал и посмотрите статус БП№ $this->id <br><a href=$url/index.php?content_page=bp_xml>$this->title</a>");
    };
}    

};
?>